home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD Exchange
/
CD Exchange - Volume 1.iso
/
d.t.p
/
utils
/
propage
/
donsgenies
/
donsgenies.lha
/
Don'sGenies
/
BordersSimpleShapes.pprx
< prev
next >
Wrap
Text File
|
1993-05-25
|
27KB
|
836 lines
/* This Genie puts a decorative border around a box, using data stored in the genie. The resulting border is merged into a single box. The current line and fill colours are used.
Genie written and © by Don Cox July 92. Bug fixes Jan 93. Not public domain. All rights reserved. */
trace n
address command
signal on error
signal on syntax
signal on halt
signal on break_c
signal on break_d
signal on break_e
if ~show("l", "gdarexxsupport.library") then
if ~addlib("gdarexxsupport.library", 0, -30,0) then
do
call ppm_Inform(1,"Please install the gdarexxsupport.library in your libs: directory before running this Genie.")
end
call ppm_AutoUpdate(0)
call SafeEndEdit.rexx()
cr="0a"x
CurrentUnits = ppm_GetUnits()
select
when CurrentUnits = 1 then do
units="inches"
mul = 1
mul2 = 72
end
when CurrentUnits = 2 then do
units="mm"
mul = 10
mul2 = 28.4
end
otherwise do
call ppm_SetUnits(2)
units="mm"
mul = 10
mul2 = 28.4
end
end
mainbox = ppm_ClickOnBox(" Click on box to be given a border")
if mainbox = 0 then exit_msg("No box selected")
mainpos = ppm_GetBoxPosition(mainbox)
mainXpos = word(mainpos, 1)
mainYpos = word(mainpos, 2)
mainsize = ppm_GetBoxSize(mainbox)
mainwidth = word(mainsize,1)
mainheight = word(mainsize,2)
mainangle = ppm_GetBoxAngle(mainbox)
/* Initialize data strings */
cornerline1 = ""
cornerline2 = ""
cornerline3 = ""
cornerweight1 = ""
cornerweight2 = ""
cornerweight3 = ""
sideline1 = ""
sideline2 = ""
sideline3 = ""
cornerXoffset = 0
cornerYoffset = 0
sideXoffset = 0
sideYoffset = 0
cornerfill1 = 0
cornerfill2 = 0
cornerfill3 = 0
sidefill1 = 0
sidefill2 = 0
sidefill3 = 0
lines = 1
list = "Greek Key"cr"Two Rules"cr"Two Rules Rounded"cr"Two Rules Reverse Rounded"cr"Three Rules"cr"Battlements"cr"Cutout"cr"Filled Squares"cr"Double Squares"cr"Off-Centre Squares"cr"Filled Triangles"cr"Filled Triangles 2"cr"Three Ls"cr"Bars"
chosen = ppm_SelectFromList("Select Border Pattern",30,14,0,list)
if chosen = "" then exit_msg("Aborted by User")
/* Data for various patterns. The numbers are lists of coordinates in the format required by the DrawPoly command. */
select
when chosen = "Bars" then do
cornerline1 = "0 0"cr"3 0"cr"3 3"cr"0 3"cr"0 0"
cornerline2 = "5 0"cr"7 0"cr"7 7"cr"0 7"cr"0 5"cr"5 5"cr"5 0"
cornerline3 = "9 0"cr"11 0"cr"11 11"cr"0 11"cr"0 9"cr"9 9"cr"9 0"
sideline1 = "1 0"cr"3 0"cr"3 12"cr"1 12"cr"1 0"
sideline2 = "5 0"cr"7 0"cr"7 12"cr"5 12"cr"5 0"
sideheight = 12
sidewidth = 8
sideXoffset = 1
sideYoffset = 0
cornerheight = 12
cornerwidth = 12
cornerXoffset = 0
cornerYoffset = 0
cornerfill1 = 1
cornerfill2 = 1
cornerfill3 = 1
sidefill1 = 1
sidefill2 = 1
sidefill3 = 0
lines = 0 /* number of line weights to be set by user */
end
when chosen = "Three Ls" then do
cornerline1 = "0 0"cr"4 0"cr"4 4"cr"0 4"cr"0 0"
cornerline2 = "6 0"cr"9 0"cr"9 9"cr"0 9"cr"0 6"cr"6 6"cr"6 0"
sideline1 = "1 0"cr"3 0"cr"3 8"cr"11 8"cr"11 10"cr"1 10"cr"1 0"
sideline2 = "5 0"cr"7 0"cr"7 4"cr"11 4"cr"11 6"cr"5 6"cr"5 0"
sideline3 = "9 0"cr"11 0"cr"11 2"cr"9 2"cr"9 0"
sideheight = 10
sidewidth = 12
sideXoffset = 1
sideYoffset = 0
cornerheight = 10
cornerwidth = 10
cornerXoffset = 0
cornerYoffset = 0
cornerfill1 = 1
cornerfill2 = 1
sidefill1 = 1
sidefill2 = 1
sidefill3 = 1
lines = 0
end
when chosen = "Filled Triangles 2" then do
cornerline1 = "4.3 0"cr"4.3 4.3"cr"0 4.3"cr"4.3 0"
sideline1 = "0 0"cr"4 0"cr"0 4"cr"0 0"
sideline2 = "5 1"cr"5 5"cr"1 5"cr"5 1"
sideheight = 5
sidewidth = 6.4
sideXoffset = 0.7
sideYoffset = 0
cornerheight = 5
cornerwidth = 5
cornerXoffset = 0
cornerYoffset = 0
cornerfill1 = 1
sidefill1 = 1
sidefill2 = 1
sidefill3 = 0
lines = 0
end
when chosen = "Filled Triangles" then do
cornerline1 = "2.6 0"cr"2.6 2.6"cr"0 2.6"cr"2.6 0"
sideline1 = "0 0"cr"4 4"cr"0 4"cr"0 0"
sideline2 = "2 0"cr"10 0"cr"6 4"cr"2 0"
sideline3 = "12 0"cr"12 4"cr"8 4"cr"12 0"
sideheight = 4
sidewidth = 12
sideXoffset = 0
sideYoffset = 0
cornerheight = 4
cornerwidth = 4
cornerXoffset = 0
cornerYoffset = 0
cornerfill1 = 1
sidefill1 = 1
sidefill2 = 1
sidefill3 = 1
lines = 0
end
when chosen = "Off-Centre Squares" then do
cornerline1 = "0 0"cr"4 0"cr"4 4"cr"0 4"cr"0 0"
cornerline2 = "0 0"cr"2 0"cr"2 2"cr"0 2"cr"0 0"
sideline1 = "1 0"cr"5 0"cr"5 4"cr"1 4"cr"1 0"
sideline2 = "1 0"cr"3 0"cr"3 2"cr"1 2"cr"1 0"
sideheight = 5
sidewidth = 6
sideXoffset = 1
sideYoffset = 0
cornerheight = 5
cornerwidth = 5
cornerXoffset = 0
cornerYoffset = 0
cornerfill1 = 0
sidefill1 = 0
lines = 1
end
when chosen = "Double Squares" then do
cornerline1 = "0 0"cr"4 0"cr"4 4"cr"0 4"cr"0 0"
cornerline2 = "1 1"cr"3 1"cr"3 3"cr"1 3"cr"1 1"
sideline1 = "1 0"cr"5 0"cr"5 4"cr"1 4"cr"1 0"
sideline2 = "2 1"cr"4 1"cr"4 3"cr"2 3"cr"2 1"
sideheight = 5
sidewidth = 6
sideXoffset = 1
sideYoffset = 0
cornerheight = 5
cornerwidth = 5
cornerXoffset = 0
cornerYoffset = 0
cornerfill1 = 0
sidefill1 = 0
lines = 1
end
when chosen = "Filled Squares" then do
cornerline1 = "0 0"cr"4 0"cr"4 4"cr"0 4"cr"0 0"
sideline1 = "1 0"cr"5 0"cr"5 4"cr"1 4"cr"1 0"
sideheight = 5
sidewidth = 6
sideXoffset = 1
sideYoffset = 0
cornerheight = 5
cornerwidth = 5
cornerXoffset = 0
cornerYoffset = 0
cornerfill1 = 1
sidefill1 = 1
lines = 0
end
when chosen = "Cutout" then do
cornerline1 = "0 1"cr"0 0"cr"1 0"
sideline1 = "0 0"cr"1 0"
sideline2 = "3 0"cr"4 0"
sideheight = 1
sidewidth = 4
sideXoffset = 0
sideYoffset = 0
cornerheight = 1
cornerwidth = 1
cornerXoffset = 0
cornerYoffset = 0
lines = 1
end
when chosen = "Battlements" then do
cornerline1 = "0 0"cr"3.3 0"cr"3.3 2.3"cr"2.3 2.3"cr"2.3 3.3"cr"0 3.3"cr"0 0"
sideline1 = "0 6"cr"1 6"cr"1 0"cr"3 0"cr"3 6"cr"4 6"
sideheight = 6
sidewidth = 4
sideXoffset = 0
sideYoffset = 0
cornerheight = 4
cornerwidth = 4
cornerXoffset = 0
cornerYoffset = 0
lines = 1
end
when chosen = "Greek Key" then do
sideline1 = "0 0"cr"6 0"cr"6 5"cr"3 5"cr"3 3"cr"2 3"cr"2 6"cr"7 6"cr"7 0"cr"8 0"
sideline2 = "0 1"cr"5 1"cr"5 4"cr"4 4"cr"4 2"cr"1 2"cr"1 7"cr"8 7"cr"8 0.8"
sideheight = 8
sidewidth = 8
sideXoffset = 0
sideYoffset = 0
cornerheight = 8
cornerwidth = 8
cornerXoffset = 0
cornerYoffset = 0
Cornerline1 = "0 8"cr"0 0"cr"6 0"cr"6 5"cr"2 5"cr"2 2"cr"4 2"cr"4 3"cr"3 3"cr"3 4"cr"5 4"cr"5 1"cr"1 1"cr"1 6"cr"7 6"cr"7 0"cr"8 0"
Cornerline2 = "1 8"cr"1 7"cr"8 7"cr"8 0.8"
lines = 0
end
when chosen = "Two Rules" then do
sideline1 = ""
sideline2 = ""
Cornerline1 = ""
cornerline2 = ""
lines = 2
end
when chosen = "Two Rules Rounded" | chosen = "Two Rules Reverse Rounded" then do
sideline1 = ""
sideline2 = ""
Cornerline1 = ""
cornerline2 = ""
lines = 100 /* impossible number as a flag */
end
when chosen = "Three Rules" then do
sideline1 = ""